//数据库模块
const db=require('../db/index')
//加密
const bcrypt=require('bcryptjs')
//生成token
const jwt=require('jsonwebtoken')
//全局配置文件
const config=require('../config')

//注册处理函数
exports.regUser=(req,res)=>{
    const userinfo=req.body
    // if(!userinfo.username || !userinfo.password){
    //     return res.send({
    //         status:1,
    //         msg:'用户名和密码不合法！'
    //     })
    // }
//定义sql语句
const sqlStr='select * from ev_users where username=?'
    db.query(sqlStr,userinfo.username,(err,results)=>{
        if(err)  return res.cc(err)
        if(results.length>0) return res.cc('用户名被占用，请选择其他用户名！')
    
 //用户名可以使用，没有重复，进行下一步判断
 //利用brcypt加密密码 
 userinfo.password=bcrypt.hashSync(userinfo.password,10)
const sql='insert into ev_users set ?'
db.query(sql,{username:userinfo.username,password:userinfo.password},(err,results)=>{
    if(err)
     return res.send({
        status:400,
        msg:err.message
    })
     if(results.affectedRows!==1) {

     return res.cc('用户注册失败，请稍后再试！')
    }
     res.cc('注册成功',200)
})
})
            
}

//登录处理函数
exports.Login=(req,res)=>{   
    const userinfo=req.body
    const sql=`select * from ev_users where username=?`
    db.query(sql,userinfo.username,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length!==1) return res.cc('登陆失败')
        //用户输入密码和数据库密码都经过bcrypt特殊加密，验证是否一致
       const ds= bcrypt.compareSync(userinfo.password,results[0].password)
        if(!ds)  return res.cc('登陆失败')
        const user={...results[0],password:'',user_pic:''}
        //加密信息，生成token
        const tokenStr=jwt.sign(user,config.jwtSecretKey,{expiresIn:config.expiresIn})
        console.log(tokenStr);
        res.send({
            status:200,
            msg:'登录成功',
            token:'Bearer '+tokenStr
        })
    })
    



    
}